package com.itheima.dao;

import com.itheima.domain.Book;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BookDao {
    List<Book> findAll();

    List<Book> findByCase(Book book);

    List<Book> find(List<Integer> ids);

    //***********************************
    //@Param绑定#{}
    Book findOne(@Param("aaa") int id, @Param("b") String bookname);

    Book findOne2(List<Object> list);

    Book findOne3(Map<String, Object> map);

    List<Book> findOne4();

    void save(Book book);

    List<Book> showAll();

    int del(int[] ids);
//-------------------------------------
    //将id为20的书籍，单价修改为500元 并返回影响行数
    int update(int id,double price);

    //查询id为1，3，5的书籍(如果集合为空则查询全部数据)
    List<Book> findByList(List<Integer> ids);


    //模糊查寻出版社中带有'人民'且书籍单价大于100小于200的书籍
    List<Book> find(Map<String,Object> map);


    //根据id查寻指定数据 id可自定义  【断点高度观察map中的键名】
    Map<String,Object> findByMap(int id);


    //多条件查询 当bookname 不为空时接拼条件并模糊查寻
//多条件查询 company 不为空时接拼条件并模糊查寻
//都为空时则查询全部
    List<Book> findByCase(@Param("a") String bookname, @Param("b") String company);

}

